/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package MiniProjet.modeles;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

/**
 *
 * @author SaLaH
 */
@Entity


public class Film implements Serializable {
    private static final long serialVersionUID = 1L;
   
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String titre;
    private String resume;
   @ManyToMany(cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
    private Collection<Genre> genres = new ArrayList();
    private String image;
    private double prix;
    private int quantite;
    private boolean disponibilite;
    @ManyToMany(cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
    private Collection<Acteur> acteurs = new ArrayList(); 
    @ManyToOne(cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
    private Realisateur realisateur;
    @ManyToMany(cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
    private Collection<Rubrique> rubriques = new ArrayList();
 
    public void setRealisateur(Realisateur realisateur) {
        this.realisateur = realisateur;
    }
    public Realisateur getRealisateur() {
        return realisateur;
    }


    public Film(){
    
    }

    public Film(String titre, double prix, int quantite, boolean disponibilite, String resume, String image, Collection<Genre> genres, Realisateur realisateur, Collection<Acteur> acteurs, Collection<Rubrique> rubriques ) {
       this.titre = titre;
       this.prix = prix;
       this.quantite = quantite;
       this.disponibilite = disponibilite;
       this.resume = resume;
       this.image = image;
     //  this.genre = genre;
       this.realisateur = realisateur;
       //this.acteurs = acteurs;
    }

      public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitre() {
        return titre;
    }

    public void setTitre(String titre) {
        this.titre = titre;
    }
  
    public Collection<Genre> getGenres() {
        return genres;
    }

    public void setGenres(Collection<Genre> genres) {
        this.genres = genres;
    }

   

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }


    public double getPrix() {
        return prix;
    }

    public void setPrix(double prix) {
        this.prix = prix;
    }

     public int getQuantite() {
        return quantite;
    }

    public void setQuantite(int quantite) {
        this.quantite = quantite;
    }

    public boolean isDisponibilite() {
        return disponibilite;
    }

    public void setDisponibilite(boolean disponibilite) {
        this.disponibilite = disponibilite;
    }


    public String getResume() {
        return resume;
    }
    
    public void setResume(String resume) {
        this.resume = resume;
    }

    public Collection<Acteur> getActeurs() {
        return acteurs;
    }

    public void setActeurs(Collection<Acteur> acteurs) {
        this.acteurs = acteurs;
    }

    public Collection<Rubrique> getRubriques() {
        return rubriques;
    }

    public void setRubriques(Collection<Rubrique> rubriques) {
        this.rubriques = rubriques;
    }




    @Override
    public String toString() {
        return "MiniProjet.modeles.Film[id=" + id + "]";
    }

}
